﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Common;

namespace Entidades.jSON
{
    public class ProyectoInfo
    {
        #region Constructores

        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public ProyectoInfo()
        {
        }

        /// <summary>
        /// Construye un objeto ProyectoInfo a partir de un Proyecto
        /// </summary>
        /// <param name="proyecto"></param>
        public ProyectoInfo(Proyecto proyecto)
        {
            this.Id                 = proyecto.Id;

            this.Nombre             = proyecto.Nombre;
            this.Descripcion        = proyecto.Descripcion;
            this.Tipo               = proyecto.Tipo != null ? proyecto.Tipo.Nombre : string.Empty;
            this.IdTipo             = proyecto.Tipo != null ? proyecto.Tipo.Id : Common.WellKnownKeys.Entities.DEFAULT_ID;
            this.FechaCreacion      = proyecto.FechaCreacion;
            this.IdUsuarioCreacion  = proyecto.UsuarioCreacion != null ? proyecto.UsuarioCreacion.Id : WellKnownKeys.Entities.DEFAULT_ID;
            this.Activo             = proyecto.Activo;
        }

        #endregion

        #region Propiedades

        private int _Id;
        /// <summary>
        /// Id (PK)
        /// </summary>
        public virtual int Id
        {
            get { return _Id; }
            set { _Id = value; }
        }

        private string _Nombre;
        /// <summary>
        /// Nombre
        /// </summary>
        public virtual string Nombre
        {
            get { return _Nombre; }
            set { _Nombre = value; }
        }

        private string _Descripcion;
        /// <summary>
        /// Descripción
        /// </summary>
        public virtual string Descripcion
        {
            get { return _Descripcion; }
            set { _Descripcion = value; }
        }

        private string _Tipo;
        /// <summary>
        /// Tipo del Proyecto
        /// </summary>
        public virtual string Tipo
        {
            get { return _Tipo; }
            set { _Tipo = value; }
        }

        private int _IdTipo;
        /// <summary>
        /// Id del Tipo del Proyecto
        /// </summary>
        public virtual int IdTipo
        {
            get { return _IdTipo; }
            set { _IdTipo = value; }
        }

        private int _IdUsuarioCreacion;
        /// <summary>
        /// Id del Usuario de Creación del Proyecto
        /// </summary>
        public virtual int IdUsuarioCreacion
        {
            get { return _IdUsuarioCreacion; }
            set { _IdUsuarioCreacion = value; }
        }

        private DateTime _FechaCreacion;
        /// <summary>
        /// Fecha de Creación del Proyecto
        /// </summary>
        public virtual DateTime FechaCreacion
        {
            get { return _FechaCreacion; }
            set { _FechaCreacion = value; }
        }

        private bool _Activo;
        /// <summary>
        /// Activo
        /// </summary>
        public virtual bool Activo
        {
            get { return _Activo; }
            set { _Activo = value; }
        }

        #endregion
    }
}
